home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
Ghostwriter 1.1 germ d1.adf
/
Ghostwriter
/
Ghostwriter.amosSourceCode
Wrap
AMOS Source Code
|
1992-01-05
|
27KB
|
1,178 lines
Set Buffer 210
Rem - Erste Definitionen -
Dim TR(6),TB(6),ZEILE$(22*60)
Global W_W,TRB$,TR(),ST$,LR,VO,TB(),SDAT$,ZEILE$(),ZEILE,SPALTE,LZEILE,SEITE,J,ANF,SCH,T$,GSZ,ESS,VF
For T=1 To 6 : TB(T)=10*T : Next : TB(0)=1
SETUP_LESEN
TREIBER_LESEN
Break Off
Fix(0)
Screen Open 1,640,256,8,Hires
Wind Open 1,20,5,73,27,1
Load Iff "Ghostwriter:bild1"
Border 1,4,4 : Paper 4 : Pen 0 : Clw
Wind Save
Rem Palette $0,$FFF,$F00,$80,$999,$FB0,$963,$CA7
Rem - Seitenzahl erfragen -
L1=%11111111
L2=%11000011
L3=%10000001
L4=%10000001
L5=%10000001
L6=%10000001
L7=%11000011
L8=%11111111
Set Curs L1,L2,L3,L4,L5,L6,L7,L8
SEITENZAHL:
Wind Open 2,170,80,30,5,1
Border 2,1,0 : Paper 1 : Clw
Print " Wieviele Seiten wollen"
Print " Sie bearbeiten ?"
HOLEN["Seiten:",9,2,2] : SEITEN=Val(ST$)
If SEITEN>22 or SEITEN<1 Then Wind Close : Goto SEITENZAHL
Wind Close : Clw : Show
Rem - Feste Variablen festsetzen -
ZEILE=1 : SPALTE=1 : SEITE=1 : LR=4 : VO=2
For X=1 To 22*60
ZEILE$(X)=String$(" ",70)
Next
LZEILE=SEITEN*60
T$=Space$(20) : GSZ=70 : ESS=35 : VF=0
MEN�S
Rem - Hauptprozeduren -
ANZEIGE
Ink 0 : Box 50,185 To 565,200
Ink 1 : Paint 60,190,1
S_DATEN_LESEN : Home : Change Mouse 1
EINGABE:
WARTEN:
If Choice Then Goto WAHLEN
I$=Inkey$
SC=Scancode
KS=Key Shift
If I$="" Then Goto WARTEN
If KS=1 and SC=66 or KS=2 and SC=66 Then Gosub TAL : Goto WARTEN
If SC=95 Then INFO_2 : Goto WARTEN
If SC=66 Then Gosub TAR
If SC=79 Then Gosub CURSL
If SC=78 Then Gosub CURSR
If SC=76 Then Gosub CURSH
If SC=77 Then Gosub CURSU
If SC=68 or SC=67 Then Gosub ENTER
If SC=65 Then Gosub NZWEG
If SC=70 Then Gosub ZEWEL
If SC=80 Then Gosub ZLWEG
If SC=81 Then Gosub ZLEIN
If SC=82 Then Gosub SEVBL
If SC=83 Then Gosub SERBL
If SC=84
Gosub ZEEIN
Locate 0,
Print ZEILE$(ZEILE)
Remember X
Remember Y
Curs On
End If
If SC=85 Then Gosub SEANF
If SC=86 Then Gosub SEEND
If SC=87 Then Gosub ZANFG
If SC=88 Then Gosub ZENDE
If SC=89 Then Gosub ZWEG2
If Asc(I$)>31 and Asc(I$)<253 Then Gosub SCHREIBEN
Goto WARTEN
SCHREIBEN:
ZW$=ZEILE$(ZEILE)
Mid$(ZW$,SPALTE,1)=I$
Print I$;
If Y Curs=20 and SPALTE=GSZ Then Cleft : WORD_WRAP : Shoot : Goto WARTEN
Cleft : Gosub CURSR
Clear Key : I$=""
Return
TAR:
X=SPALTE/10+1 : If X=7 Then X=0 : SPALTE=1 : Locate SPALTE-1, : ANZEIGE : Return
SPALTE=TB(X)
Locate SPALTE-1, : ANZEIGE
Return
TAL:
X=(SPALTE-1)/10 : If X<1 Then X=6 : SPALTE=60 : Locate SPALTE-1, : ANZEIGE : Return
SPALTE=TB(X)
Locate SPALTE-1, : ANZEIGE
Return
CURSR:
VF=1
If SPALTE=70 Then WORD_WRAP : If W_W=1 Then Goto WARTEN
If ZEILE=LZEILE and SPALTE=GSZ Then Shoot : Return
If SPALTE=GSZ and Y Curs=19 Then Shoot : Return
If SPALTE=GSZ
Inc ZEILE
SPALTE=1
Cdown : Locate 0,
ANZEIGE
Bell
Return
End If
Inc SPALTE
If SPALTE>GSZ-5 Then Bell
Cright
ANZEIGE
Return
CURSL:
If SPALTE=1 and ZEILE=1 Then Shoot : Return
If SPALTE=1 and Y Curs=0 Then Shoot : Return
If SPALTE=1
Dec ZEILE
SPALTE=GSZ
Cup : Locate GSZ-1,
ANZEIGE
Clear Key
Return
End If
Dec SPALTE
Cleft
Clear Key
ANZEIGE
Return
CURSH:
If ZEILE=1 Then Shoot : Return
SE=(ZEILE-2)/60
SEITE=SE+1
If Y Curs=0
Gosub BILD2
Dec ZEILE
Locate ,19
Clear Key
ANZEIGE
Return
End If
Dec ZEILE
Cup
Clear Key
ANZEIGE
Return
CURSU:
If ZEILE=LZEILE Then Shoot : Return
SE=(ZEILE)/60
SEITE=SE+1
If Y Curs=19
Gosub BILD1
Inc ZEILE
Locate ,0
ANZEIGE
Clear Key
Return
End If
Inc ZEILE
Cdown
Clear Key
ANZEIGE
Return
ENTER:
If ZEILE=LZEILE Then Boom : Return
If Y Curs=19
Gosub BILD1
Inc ZEILE
SPALTE=1
Locate 0,0
ANZEIGE
Clear Key
Return
End If
Inc ZEILE : SPALTE=1
Cdown
Clear Key
ANZEIGE
Locate 0,
Return
BILD1:
Curs Off
Home
RemFor T=1 To 20
RemPrint Space$(70);
RemNext
X=ZEILE+1
XMAX=X+19
If XMAX>LZEILE Then XMAX=LZEILE
Home
WID:
Print ZEILE$(X);
Inc X
If X=XMAX+1
Locate SPALTE-1,0
Clear Key
Curs On
Return
End If
Goto WID
BILD2:
Curs Off
Home
RemFor T=1 To 20
RemPrint Space$(70);
RemNext
X=ZEILE-1
XMAX=X-19
If XMAX<1 Then XMAX=1
Locate 0,19
WID2:
Print ZEILE$(X);
Dec X
If X=XMAX-1
Locate SPALTE-1,0
Clear Key
Curs On
Return
End If
Cup : Cup
Goto WID2
ZWEG2:
ZW$=ZEILE$(ZEILE)
Right$(ZW$,71-SPALTE)=Space$(71-SPALTE)
Cline 71-SPALTE
Return
ZENDE:
SPALTE=GSZ
Locate GSZ-1,
ANZEIGE
Return
ZANFG:
SPALTE=1
Locate 0,
ANZEIGE
Return
SEANF:
If Y Curs=0 Then Return
SCHLEIFE1:
Dec ZEILE
Cup
If Y Curs=0 Then ANZEIGE : Return
Goto SCHLEIFE1
SEEND:
If Y Curs=19 Then Return
Curs Off
SCHLEIFE2:
Inc ZEILE : If ZEILE>LZEILE Then Dec ZEILE : ANZEIGE : Curs On : Return
Cdown
If Y Curs=19 Then ANZEIGE : Curs On : Return
Goto SCHLEIFE2
ZEWEL:
Curs Off
Memorize X
Memorize Y
ZW$=ZEILE$(ZEILE)
ER$=Left$(ZW$,SPALTE-1)
LT$=Right$(ZW$,GSZ-SPALTE)
ZW2$=ER$+LT$+Chr$(32)
ZEILE$(ZEILE)=Left$(ZW2$,GSZ)
Locate 0,
Print ZW2$;
Remember X
Remember Y
Curs On
Return
NZWEG:
If SPALTE=1 Then Shoot : Return
If SPALTE<6 Then Bell
Curs Off
Memorize X
Memorize Y
ZW$=ZEILE$(ZEILE)
ER$=Left$(ZW$,SPALTE-2)
LT$=Right$(ZW$,GSZ+1-SPALTE)
ZW2$=ER$+LT$+Chr$(32)
ZEILE$(ZEILE)=Left$(ZW2$,GSZ)
Dec SPALTE
Locate 0,
Print ZEILE$(ZEILE)
Remember X
Remember Y
Cmove -1,0
ANZEIGE
Curs On
Return
ZEEIN:
If SPALTE=GSZ Then Return
ZW$=ZEILE$(ZEILE)
If Right$(ZW$,1)=Chr$(32) Then Goto SCHLEIFE3
Shoot : Return
SCHLEIFE3:
Curs Off
Memorize X
Memorize Y
X=SPALTE-1
XT1$=Right$(ZW$,GSZ-X)
XT2$=Left$(ZW$,X)
XT3$=XT2$+Chr$(32)+XT1$
ZEILE$(ZEILE)=Left$(XT3$,GSZ)
Locate 0,
Print ZEILE$(ZEILE)
Remember X
Remember Y
Curs On
Return
ZLWEG:
Curs Off
Memorize X
Memorize Y
If ZEILE=LZEILE Then ZEILE$(ZEILE)=Space$(70) : Locate 0, : Print ZEILE$(ZEILE) : Remember X : Remember Y : Curs On : Return
A=ZEILE : B=LZEILE-1
Do
ZEILE$(A)=ZEILE$(A+1)
Inc A
If A=LZEILE Then Goto SCHLU�
Loop
SCHLU�:
ZEILE$(LZEILE)=Space$(70)
Gosub SEANF
A=ZEILE : C=A
Gosub SEEND
B=ZEILE
Home
WID3:
Print ZEILE$(C);
Inc C
If C=B+1 Then Locate SPALTE-1,0 : Clear Key : Curs On : Home : SPALTE=1 : ZEILE=A : ANZEIGE : Curs On : Return
Goto WID3
ZLEIN:
If ZEILE=LZEILE Then Shoot : Return
A=ZEILE : B=LZEILE
Do
ZEILE$(B)=ZEILE$(B-1)
Dec B
If B=A Then Goto SCHLU�2
Loop
SCHLU�2:
ZEILE$(A)=Space$(70)
Gosub SEANF
A=ZEILE : C=A
Gosub SEEND
B=ZEILE
Home
WID4:
Print ZEILE$(C);
Inc C
If C=B+1 Then Locate SPALTE-1,0 : Clear Key : Curs On : Home : ZEILE=A : SPALTE=1 : ANZEIGE : Curs On : Return
Goto WID4
SEVBL:
Gosub SEANF
Gosub CURSH
ANZEIGE
Return
SERBL:
Gosub SEEND
Gosub CURSU
ANZEIGE
Return
WAHLEN:
On Choice(1) Goto DATEI,BLOCK,BEARBEITEN,DRUC,KNOPF
DATEI:
If Choice(2)=1 Then ALERT["Text wirklich l�schen ???"] : Gosub TWEG : Goto WARTEN
If Choice(2)=3
Gosub TLS
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=4
TSP
Goto WARTEN
End If
If Choice(2)=6
ADRESSEN
Goto WARTEN
End If
If Choice(2)=8
INFO
Goto WARTEN
End If
If Choice(2)=10
ALERT["Programm wirklich verlassen ???"]
Gosub VERL
Goto WARTEN
End If
BLOCK:
If Choice(2)=1
Gosub BLOCKB
Goto WARTEN
End If
If Choice(3)=1
Gosub BLOCKWEG
Goto WARTEN
End If
If Choice(3)=2
Gosub BLOCKKOP
Goto WARTEN
End If
If Choice(3)=3
Gosub BLOCKLDN
Goto WARTEN
End If
If Choice(3)=4
Gosub BLOCKSPC
Goto WARTEN
End If
Goto WARTEN
BEARBEITEN:
If Choice(2)=10
Change Mouse 3
X=Free
Change Mouse 1
Goto WARTEN
End If
If Choice(2)=7
TABULATOREN
Goto WARTEN
End If
If Choice(2)=8
TAB_ANZEIGE
Goto WARTEN
End If
If Choice(2)=1
Gosub BLOCKSATZ
Home
If GSZ<70
For T=1 To 20
Print Left$(ZEILE$(T),GSZ)
Next
Else
For T=1 To 20
Print Left$(ZEILE$(T),GSZ);
Next
End If
Home : ZEILE=1 : SPALTE=1 : ANZEIGE
Goto WARTEN
End If
If Choice(2)=3
EINSTELLEN
Home
For T=1 To 20 : Print Space$(70); : Next : Home
If GSZ<70
For T=1 To 20 : Print Left$(ZEILE$(T),GSZ) : Next
Else
For T=1 To 20 : Print Left$(ZEILE$(T),GSZ); : Next
End If
Home : SPALTE=1 : ZEILE=1 : ANZEIGE
Goto WARTEN
End If
If Choice(2)=5
SEITENZAHL
Goto WARTEN
End If
KNOPF:
If Choice(2)=1
F$="Ghostwriter:A.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=2
F$="Ghostwriter:B.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=3
F$="Ghostwriter:C.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=4
F$="Ghostwriter:D.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=5
F$="Ghostwriter:E.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=6
F$="Ghostwriter:F.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=7
F$="Ghostwriter:G.TXT" : Gosub KNOPF_BRIEFE_LESEN
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
ANZEIGE
Goto WARTEN
End If
If Choice(2)=9 Then ALERT["Sind Sie sicher ???"] : If J=1 Then Goto WARTEN
If Not Exist("Ghostwriter:Suchsystem") Then Goto WARTEN
Run "Ghostwriter:Suchsystem"
DRUC:
If Choice(2)=1
DRUCKEN_1
Goto WARTEN
End If
If Choice(2)=2
TXT_SPOOLEN
Goto WARTEN
End If
If Choice(2)=4
SETUP
ZEILE=1 : SPALTE=1
Gosub SEEND
Gosub SERBL : Gosub SEVBL : Gosub SEANF
Goto WARTEN
End If
If Choice(2)=6
R�NDER_SETUP
Goto WARTEN
End If
TWEG:
If J=1 Then Return
For T=1 To LZEILE
ZEILE$(T)=Space$(70)
Next : VF=0
ZEILE=1 : SPALTE=1
Home
For T=1 To 20
Print ZEILE$(T);
Next
ANZEIGE
Home : Return
VERL:
If J=1 Then Return
Fade 2 : Wait 30 : End
BLOCKB:
F=0
Paper 1 : Memorize Y : Locate 44,22
Print "Z1:?";Space$(16)
Remember Y
LABEL:
A$=Inkey$
S=Scancode
If S=69 Then Memorize Y : ANF=0 : Paper 1 : Locate 44,22 : Print T$ : Paper 4 : Remember Y : Return
If S=67 or S=68 Then Goto LABEL1
If S=76 Then Gosub CURSH
If S=77 Then Gosub CURSU
Goto LABEL
LABEL1:
If F=1 Then SCH=ZEILE : Memorize Y : Paper 1 : Locate 44,22 : Print "Z1:";ANF;" Z2:";SCH;" " : Goto LABEL2
Memorize Y
ANF=ZEILE
Paper 1 : Locate 44,22 : Print Space$(20) : Locate 44,22 : Print "Z1:";ANF;" Z2:?" : F=1
Remember Y
Goto LABEL
LABEL2:
If ANF>SCH Then Swap ANF,SCH : Locate 44,22 : Print "Z1:";ANF;" Z2:";SCH;" " : Paper 4 : Remember Y : Return
Remember Y
Return
BLOCKKOP:
If ANF=0 Then Return
Paper 1 : Memorize Y : Locate 44,22
Print "ZZ:?";Space$(16)
Remember Y
LABEL3:
A$=Inkey$
S=Scancode
If S=69 Then Memorize Y : ANF=0 : Paper 1 : Locate 44,22 : Print T$ : Paper 4 : Remember Y : Return
If S=67 or S=68 Then Goto LABEL4
If S=76 Then Gosub CURSH
If S=77 Then Gosub CURSU
Goto LABEL3
LABEL4:
Z=ZEILE
Do
ZEILE$(Z)=ZEILE$(ANF)
Inc ANF : Inc Z
If Z>LZEILE or ANF>SCH Then Goto LABEL5
Loop
LABEL5:
Home
For T=1 To 20
Print ZEILE$(T);
Next
Locate 44,22 : Paper 1 : Print T$ : Paper 4
ZEILE=1 : SPALTE=1 : Home : ANZEIGE : ANF=0
Return
BLOCKWEG:
If ANF=0 Then Return
ALERT["Sind Sie sicher ???"] : If J=1 Then Return
For T=ANF To SCH
ZEILE$(T)=Space$(70)
Next
Paper 4 : Goto LABEL5
BLOCKSPC:
If ANF=0 Then Return
F$=Fsel$("df0:*.BLK","","Block speichern")
If F$="" Then Return
Open Out 1,F$
Print #1,(SCH-ANF+1)
For T=ANF To SCH
Print #1,ZEILE$(T)
Next
Close 1
Return
BLOCKLDN:
F$=Fsel$("df0:*.BLK","","Block laden")
If F$="" Then Return
If Exist(F$) or Exist(F$+".BLK") Then Goto WRS
Return
WRS:
Open In 1,F$ : Z=ZEILE : W=1
Input #1,ANZAHL
Change Mouse 3
Do
Line Input #1,ZEILE$(Z)
Inc Z : Inc W
If Z>LZEILE or W>ANZAHL Then Goto LABEL8
Loop
LABEL8:
Close 1
Home
For T=1 To 20
Print ZEILE$(T);
Next
ZEILE=1 : SPALTE=1 : ANZEIGE : Home : Change Mouse 1 : Return
BLOCKSATZ:
Change Mouse 3
Gosub SEANF
ZEILE=1
SPALTE=0
WEITER:
If Right$(ZEILE$(ZEILE),ESS)=Space$(ESS) Then Goto LABEL10
If ZEILE$(ZEILE)=Space$(GSZ) Then ANZEIGE : Goto LABEL10
Inc SPALTE : If SPALTE>=GSZ-2 Then SPALTE=2 : ANZEIGE
If Mid$(ZEILE$(ZEILE),SPALTE,1)<>" " Then ANZEIGE : Goto WEITER
Gosub ZEEIN : Inc SPALTE : ANZEIGE : If Right$(ZEILE$(ZEILE),1)=" " Then Goto WEITER
LABEL10:
Inc ZEILE : If ZEILE>LZEILE Then Change Mouse 1 : Return
SPALTE=0 : ANZEIGE : Goto WEITER
TLS:
Menu Off
F$=Fsel$("df0:*.TXT","","Textfile einlesen")
If F$="" Then Menu On : Return
If Exist(F$) or Exist(F$+".TXT") Then Goto WES
Menu On : Return
WES:
Menu Off
If Right$(F$,4)=".TXT" Then Open In 1,F$ : T=1 : Goto WEI
Open In 1,F$+".TXT" : T=1
WEI:
Change Mouse 3
Line Input #1,ZEILE$(T)
Locate 0,0 : Print ZEILE$(T)
If Eof(1) Then Close 1 : Menu On : Goto WEE
Inc T : Goto WEI
WEE:
TN$=F$ : T$=Left$(TN$,20)
LZEILE=T
Locate 44,22 : Paper 1 : Print T$ : Paper 4
Change Mouse 1
Menu On : Return
KNOPF_BRIEFE_LESEN:
If Not Exist(F$) Then Return
If Exist(F$) Then Gosub WES
Return
Procedure INFO
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Curs Off
Centre "Ghostwriter V1.1" : Cdown
Centre "~~~~~~~~~~~~~~~~" : Cdown
Centre "Programmiert von:" : Cdown
Centre "CHRIS DOPIERALSKI" : Cdown
Cdown : Centre "Copyright by:" : Cdown
Centre "Goodsoft 1991"
While Mouse Key=0
Wend : Wind Close : Curs On
End Proc
Procedure ALERT[ZL$]
Wind Open 2,150,50,40,10,5
Border 2,1,0 : Paper 1 : Clw : Curs Off
Ink 0
Centre "A C H T U N G !"
Cdown : Cdown : Centre ZL$
Ink 2
Bar 200,100 To 300,120
Ink 1
Bar 202,102 To 298,118
Ink 0
Bar 320,100 To 420,120
Ink 1
Bar 322,102 To 418,118
Pen 2
Locate 8,6 : Print "Nein !"
Pen 0
Locate 24,6 : Print "Ja !"
Reserve Zone 2
Set Zone 1,202,102 To 298,118
Set Zone 2,322,102 To 418,118
M:
While Mouse Click<>1
Wend
If Mouse Zone=1 Then J=1
If Mouse Zone=2 Then J=2
If Mouse Zone=0 Then Goto M
Wind Close : Curs On
End Proc[J]
Procedure ANZEIGE
Curs Off
Memorize X
Memorize Y
Locate 5,22
Paper 1 : Print " Zeile:";ZEILE;" "
Locate 17,22
Print " Spalte:";SPALTE;" "
Locate 31,22
Print " Seite:";SEITE;" "
Paper 4
Remember X
Remember Y
Curs On
End Proc
Procedure MEN�S
Menu$(1)=" Datei "
Menu$(1,1)=" Neuer Text "
Menu$(1,2)=" --------------"
Menu$(1,3)=" Text laden "
Menu$(1,4)=" Text speichern "
Menu$(1,5)=" --------------"
Menu$(1,6)=" Adressen "
Menu$(1,7)=" --------------"
Menu$(1,8)=" Programm_Info "
Menu$(1,9)=" --------------"
Menu$(1,10)=" Programm_Ende "
Menu Key(1,10) To 69
Rem Menu Key(1,8) To 95
Menu Inactive(1,2) : Menu Inactive(1,5) : Menu Inactive(1,7) : Menu Inactive(1,9)
Menu$(2)=" Block "
Menu$(2,1)=" Block bestimmen "
Menu$(2,2)=" Block bearbeiten "
Menu$(2,2,1)=" Block l�schen "
Menu$(2,2,2)=" Block kopieren "
Menu$(2,2,3)=" Block laden "
Menu$(2,2,4)=" Block sichern "
Menu$(3)=" Bearbeiten "
Menu$(3,1)=" Blocksatz "
Menu$(3,2)=" -----------"
Menu$(3,3)=" B_Sensibi. "
Menu$(3,4)=" -----------"
Menu$(3,5)=" Seitenzahl "
Menu$(3,6)=" -----------"
Menu$(3,7)=" Tabs setzen "
Menu$(3,8)=" Tabs zeigen "
Menu$(3,9)=" -----------"
Menu$(3,10)=" Garbage-Col. "
Menu Inactive(3,2) : Menu Inactive(3,4) : Menu Inactive(3,6) : Menu Inactive(3,9)
Menu$(4)=" Drucken "
Menu$(4,1)=" Text drucken "
Menu$(4,2)=" Text spoolen "
Menu$(4,3)=" -------------"
Menu$(4,4)=" Drucker-Setup "
Menu$(4,5)=" -------------"
Menu$(4,6)=" R�nder-Setup "
Menu Inactive(4,3) : Menu Inactive(4,5)
Menu$(5)=" Texte "
Menu$(5,1)=" Kurzbrief "
Menu$(5,2)=" Frage zum Programm "
Menu$(5,3)=" Information "
Menu$(5,4)=" Bestellung "
Menu$(5,5)=" Wo bleibt meine Ware "
Menu$(5,6)=" M�ngelr�ge "
Menu$(5,7)=" �berweisung "
Menu$(5,8)=" -------------------- "
Menu$(5,9)=" Such-System "
Menu Inactive(5,8)
Menu On
End Proc
Procedure ADRESSEN
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw : Curs Off
Cdown : Centre "Funktion:Adressen"
Cdown : Centre "~~~~~~~~~~~~~~~~~" : Cdown : Locate 0,
Print "Diese Funktion wird in der folgenden";
Print "Programmversion,eine Nachladefunktion";
Print "starten. Erkundigen Sie sich zu diesem";
Print "Zweck bei der Firma GOODSOFT.";
While Mouse Key=0
Wend : Wind Close : Curs On
End Proc
Procedure BILD_LEER
For T=0 To 20
Locate 0,T
Print Space$(70)
Next
End Proc
Procedure SETUP
TREIBER_START:
BILD_LEER : Locate 0,0
Centre "Verf�gbare Druckertreiber" : Cdown
Centre "~~~~~~~~~~~~~~~~~~~~~~~~~" : Cdown : Print
Dir$="df0:" : Pen 1
F$=Dir First$("*.trb")
While F$<>""
If Left$(F$,1)="*" Then Goto N_TRB
Print Left$(F$,13)
N_TRB:
F$=Dir Next$
Wend
Dir$="df0:"
SETUP_LESEN : Locate 0,16 : Print "Aktiver Treiber:";TRB$
Reserve Zone 4 : Pen 0
Locate 1,18 : Print Border$(Zone$("Treiber bestimmen",1),1)
Locate 20,18 : Print Border$(Zone$("Treiben anlegen",2),1)
Locate 37,18 : Print Border$(Zone$("Test",3),1)
Locate 43,18 : Print Border$(Zone$("Zum Men�",4),1) : Curs Off
TREIBER:
While Mouse Key<>1 : Wend
If Mouse Zone=0 Then Goto TREIBER
On Mouse Zone Goto BESTIMMEN,ANLAGE,TEST,ZUMME
TEST:
ZEILE_DRUCKEN[Chr$(27)+"x"+Chr$(0)]
ZEILE_DRUCKEN["Dies ist eine Probe !!! ������� �������"]
ZEILE_DRUCKEN[Chr$(27)+"x"+Chr$(1)]
ZEILE_DRUCKEN["Dies ist eine Probe !!! ������� �������"]
Goto TREIBER_START
BESTIMMEN:
HOLEN[" Neuer Treiber :",0,13,11]
If Len(ST$)<12 Then ST$=ST$+Space$(12-Len(ST$))
If Exist("Ghostwriter:"+ST$+".trb") Then SETUP_SCHREIBEN : TREIBER_LESEN : Goto TREIBER_START
Goto TREIBER
ANLAGE:
BILD_LEER : Locate 0,0
Centre "Treiber anlegen" : Cdown
Centre "~~~~~~~~~~~~~~~" : Print : Print
Restore
For T=0 To 6
Read X$
HOLEN["ASCII-Code f�r "+X$+" :",1,4+T,3] : TR(T)=Val(ST$)
Next
Data "�","�","�","�","�","�","�"
HOLEN["Treiber_Name :",1,12,11] : TRB$=ST$ : If Len(TRB$)<12 Then TRB$=TRB$+Space$(12-Len(TRB$))
TREIBER_SCHREIBEN
Goto TREIBER_START
ZUMME:
Curs On : Locate 0,0
End Proc
Procedure SETUP_SCHREIBEN
If Len(ST$)<12 Then ST$=ST$+Space$(12-Len(ST$))
Open Out 1,"df0:Setup.dat"
Print #1,ST$ : Close 1 : TRB$=ST$
End Proc
Procedure SETUP_LESEN
Open In 1,"df0:Setup.dat"
Line Input #1,TRB$
Close 1
End Proc
Procedure TREIBER_SCHREIBEN
Open Out 1,"df0:"+TRB$+".trb"
For T=0 To 6
Print #1,TR(T)
Next : Close 1
End Proc
Procedure TREIBER_LESEN
Open In 1,"df0:"+TRB$+".trb"
For T=0 To 6
Input #1,TR(T)
Next : Close 1
End Proc
Procedure EINSTELLEN
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Centre "Blocksatz einstellen" : Cdown
Centre "~~~~~~~~~~~~~~~~~~~~"
Rem ----------------- Cdown : Locate 0, : Print "Zeilenbreite:";GSZ
Rem ----------------- Input "Neue Zeilenbreite:";G
Rem ----------------- If G>24 and G<71 and VF=0 Then GSZ=G
Print : Print " Alter Wert :";ESS
HOLEN["Blocksatzeinsatz:",10,4,2] : E=Val(ST$)
If E>0 and E<GSZ Then ESS=E
Wind Close
End Proc
Procedure SEITENZAHL
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
X$=Str$(LZEILE/60)
Cdown : TX$="Aktuelle Seitenzahl:"+X$
Centre TX$
Locate 10,5
HOLEN["Neue Seitenzahl:",10,5,2] : X=Val(ST$)
If X<0 or X>22 or X<LZEILE/60 Then Wind Close : Pop Proc
LZEILE=60*X
Wind Close
End Proc
Procedure TSP
Menu Off
F$=Fsel$("df0:*.TXT","","Textfile speichern")
If F$="" Then Menu On : Pop Proc
If Right$(F$,4)=".TXT" Then Open Out 1,F$ : Goto LSS
Open Out 1,F$+".TXT"
LSS:
Change Mouse 3
For T=1 To LZEILE
Print #1,ZEILE$(T)
Next
Close 1
Menu On
Change Mouse 1
End Proc
Procedure ZEILE_DRUCKEN[ZL$]
Open Port 2,"PAR:"
For T=1 To Len(ZL$)
Z$=Mid$(ZL$,T,1)
If Z$="�" Then Print #2,Chr$(TR(0)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(1)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(2)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(3)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(4)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(5)); : Goto DRUCKEN
If Z$="�" Then Print #2,Chr$(TR(6)); : Goto DRUCKEN
Print #2,Chr$(Asc(Z$));
DRUCKEN:
Next
Print #2,Chr$(13) : Close 2
End Proc
Procedure HOLEN[ST$,X,Y,Z]
Clear Key : Curs On : Locate X,Y : Print ST$; : Add X,Len(ST$)
MI=X : MX=X+Z : ST$=""
WARTEN100:
While A$=""
A$=Inkey$
Wend
SC=Scancode
If SC>0 and SC<11 Then Goto WEITER100
If SC>28 and SC<32 Then Goto WEITER100
If SC>44 and SC<48 Then Goto WEITER100
If SC>60 and SC<64 Then Goto WEITER100
If SC=65 Then Goto WEG
If SC=57 or SC=56 or SC=58 or SC=60 or SC=15 Then Goto WEITER100
If Asc(A$)>31 and Asc(A$)<253 Then Goto WEITER100
If SC=67 or SC=68 Then Curs Off : Pop Proc
Clear Key : A$="" : Goto WARTEN100
WEITER100:
If X>MX Then Clear Key : A$="" : Goto WARTEN100
Print A$; : Inc X
ST$=ST$+A$
Clear Key : A$="" : Goto WARTEN100
WEG:
If X=MI Then Goto WARTEN100
Cleft : Print " "; : Cleft
ST$=Left$(ST$,Len(ST$)-1)
Dec X
Goto WARTEN100
End Proc
Procedure DRUCKEN_1
ALERT["Drucker bereit ???"] : If J=1 Then Pop Proc
Menu Off
ALERT["Druck in Sch�nschrift ?"] : If J=1 Then ZEILE_DRUCKEN[Chr$(27)+"x0"] : Goto AUSDRUCK
ZEILE_DRUCKEN[Chr$(27)+"x1"]
AUSDRUCK:
If VO=0 Then Goto WEITER_DRUCKEN
For T=0 To VO
ZEILE_DRUCKEN[Chr$(13)]
Next
WEITER_DRUCKEN:
Change Mouse 3
For T=0 To LZEILE
DRC$=Space$(LR)+ZEILE$(T)
ZEILE_DRUCKEN[DRC$]
Next
Change Mouse 1
For T=1 To 6
ZEILE_DRUCKEN[Chr$(13)]
Next
Menu On
End Proc
Procedure TXT_SPOOLEN
ALERT["Drucker bereit ?"] : If J=1 Then Pop Proc
ALERT["Druck in Sch�nschrift ?"] : If J=1 Then ZEILE_DRUCKEN[Chr$(27)+"x0"] : Goto WEITER200
ZEILE_DRUCKEN[Chr$(27)+"x1"]
WEITER200:
Menu Off
F$=Fsel$("df0:*.TXT","","Textfile spoolen")
If F$="" Then Menu On : Pop Proc
If Exist(F$) or Exist(F$+".TXT") Then Goto WES1
Menu On : Pop Proc
WES1:
If Right$(F$,4)=".TXT" Then Open In 1,F$ : Goto WEI1
If VO=0 Then Goto WEI2
For T=1 To VO
ZEILE_DRUCKEN[Chr$(13)]
Next
WEI2:
Open In 1,F$+".TXT"
WEI1:
Change Mouse 3
Line Input #1,ZL$ : ZEILE_DRUCKEN[Space$(LR)+ZL$]
If Eof(1) Then Close 1 : Menu On : Goto WEE1
Goto WEI1
WEE1:
Change Mouse 1
End Proc
Procedure R�NDER_SETUP
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Centre "R�nder einstellen" : Cdown
Centre "~~~~~~~~~~~~~~~~~" : Cdown
HOLEN["Oberer Rand :",12,3,2] : X=Val(ST$) : If X>(-1) and X<12 Then VO=X
HOLEN["Linker Rand :",12,5,2] : X=Val(ST$) : If X>(-1) and X<0 Then LR=X
Wind Close
End Proc
Procedure TABULATOREN
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Centre "Tabulatoren festlegen" : Cdown
Centre "~~~~~~~~~~~~~~~~~~~~~" : Cdown
For T=0 To 5
HOLEN["Tabulatorposition"+Str$(T+1)+":",4,4,1] : If Val(ST$)>0 and Val(ST$)<60 Then TB(T)=Val(ST$)
Locate 4,4 : Print Space$(30)
Next
Wind Close
End Proc
Procedure TAB_ANZEIGE
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Centre "Tabulatoren-Kontrolle" : Cdown
Centre "~~~~~~~~~~~~~~~~~~~~~" : Print
For T=0 To 3
Print " Tabulator Nr.";T+1;":";TB(T)
Next
Print " Tabulator Nr. 5:";TB(4); : Curs Off
While Mouse Key=0 : Wend : Curs On
Wind Close
End Proc
Procedure S_DATEN_LESEN
If Not Exist("ram:s.dat") Then S_DAT_SCHREIBEN : Pop Proc
Open In 1,"ram:s.dat"
Input #1,SDAT$ : Close 1
If SDAT$="***" Then Pop Proc
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw : Cdown
Centre "Im Suchsystem haben Sie" : Cdown
Centre "Text Nr.: "+SDAT$+" gefunden." : Cdown : Print
Centre "Bitte legen Sie die Datendiskette" : Print
Centre "ein und klicken mit der Maus!" : Curs Off : Print
While Mouse Key=0 : Wend
Hide On : Wait 150
If Not Exist("df0:"+SDAT$+".TXT") Then Show : Wind Close : S_DAT_SCHREIBEN : Pop Proc
Menu Off
Open In 1,"df0:"+SDAT$+".TXT" : T=1
Change Mouse 3 : Wind Close : Show
WI10:
Line Input #1,ZEILE$(T)
Locate 0,0 : Print ZEILE$(T)
If Eof(1) Then Close 1 : Menu On : Goto WE10
Inc T : Goto WI10
WE10:
TN$=SDAT$ : T$=Left$(TN$,20)
LZEILE=T
Locate 44,22 : Paper 1 : Print T$ : Paper 4
Change Mouse 1
Home
For T=1 To 20
Print ZEILE$(T);
Next
Home : ZEILE=1 : SPALTE=1
RemSYS_WARTEN :
S_DAT_SCHREIBEN
ANZEIGE
Menu On
End Proc
Procedure S_DAT_SCHREIBEN
If Exist("ram:")
Open Out 1,"ram:s.dat"
Print #1,"***"
Close 1
End If
End Proc
Procedure SYS_WARTEN
Wind Open 2,150,50,40,10,5
Border 2,0,1 : Paper 1 : Clw
Print : Print : Bell : Centre "Bitte System-Diskette einlegen!" : Print : Print : Centre "Click Mouse!!!"
Curs Off : While Mouse Key=0 : Wend : Curs On
While Not Exist("Ghostwriter:s.dat") : Wend
Wind Close
End Proc
Procedure INFO_2
Wind Open 2,120,50,50,11,5
Border 2,0,1 : Paper 1 : Clw
Curs Off
Print : Centre "Belegung der Funktionstasten" : Cdown
Centre "~~~~~~~~~~~~~~~~~~~~~~~~~~~~" : Print
Print " F1 = Zeile l�schen F2 = Zeile einf�gen"
Print " F3 = Bild rauf F4 = Bild runter"
Print " F5 = Zeichen einf�gen F6 = Oberste Zeile"
Print " F7 = Unterste Zeile F8 = Erste Spalte"
Print " F9 = Letzte Spalte F0 = Ab Cursor l�schen"
While Mouse Key=0
Wend : Wind Close : Curs On
End Proc
Procedure WORD_WRAP
W_W=0 : ZWW=Y Curs
Rem - �berpr�fen ob notwendig
If ZEILE=LZEILE Then Pop Proc
If ZEILE$(ZEILE+1)<>Space$(GSZ) Then Pop Proc
If Right$(ZEILE$(ZEILE),1)=" " Then Pop Proc
Rem - Letztes Word in ZEILE$(ZEILE) finden
PZ=1 : Z$="*"
While Left$(Z$,1)<>" "
ZL$=ZEILE$(ZEILE)
Z$=Right$(ZL$,PZ)
Inc PZ
Wend
Rem - Z$ bearbeiten
L=Len(Z$)-1
Z$=Right$(Z$,L)
Rem - Gefundenes Wort in n�chste Zeile einsetzen
Inc ZEILE
ZL$=ZEILE$(ZEILE)
Left$(ZL$,L)=Z$
Rem - Wort in alter Zeile l�schen
ZW$=Space$(L) : ZL=ZEILE-1 : ZL$=ZEILE$(ZEILE-1)
Right$(ZL$,L)=ZW$
Locate 0,
Print ZEILE$(ZL)
Locate SPALTE-1,
Rem - �berpr�fen, ob Anzeige m�glich
If ZWW=19 Then W_W=1 : Cup : Cup : Dec ZEILE : ANZEIGE : Shoot : Pop Proc
Rem - Anzeigen der neuen Zeile
Cup
Locate 0,
Print ZEILE$(ZEILE)
Cup : Cup
SPALTE=Len(Z$)+1
Locate SPALTE-1,
W_W=1
ANZEIGE
End Proc
Rem -----------------
Rem -----------------
Rem -----------------